home *** CD-ROM | disk | FTP | other *** search
- // ===============================================================
- // Fragment Program: Heat Source
- // Description: outputs heat source for heatvision pass
- // Last Update: 04/12/2003
- // Coder: Tiago Sousa
- // ===============================================================
-
- #include "../CGVPMacro.csi"
-
- MainInput
- {
- uniform sampler2D baseMap : texunit0,
- uniform sampler2D bumpMap : texunit1,
- uniform samplerCUBE normCubeMap : texunit2,
- uniform sampler2D noiseMap : texunit3,
- uniform float4 Heat
- }
-
- DeclarationsScript
- {
- OUT_T0_T1_T2_T3_C0
- FOUT
- }
-
- CoreScript
- {
- // // fetch texels
- // float4 baseColor = tex2D(baseMap, IN.Tex0.xy);
- // float4 vNormal = 2*(tex2D(bumpMap, IN.Tex1.xy)-0.5);
- // float4 vLight = 2*(texCUBE(normCubeMap, IN.Tex2.xyz)-0.5);
- //
- // float fDot=saturate(1-dot(vNormal, vLight));
- // //fDot*=fDot;
- // float fLum=saturate(dot(float3(0.33, 0.59, 0.11), baseColor)*IN.Color.w);
- //
- // fLum=4*saturate(fLum*fLum);
- //
- // float fFinal=saturate(fDot* Heat.z)*fLum;
- //
- // float fFinal025=fFinal*0.25;
- // //OUT.Color.xyz = float3(fFinal, IN.Color.w, IN.Color.w);
- // float3 fHeatMask=float3(0, 1, 1)*IN.Color.w;
- // OUT.Color.xyz = saturate(fFinal+fHeatMask);
- // OUT.Color.a = fFinal025;
-
-
- // fetch texels
- float4 baseColor = tex2D(baseMap, IN.Tex0.xy);
- float4 vNormal = 2*(tex2D(bumpMap, IN.Tex1.xy)-0.5);
- float4 vLight = 2*(texCUBE(normCubeMap, IN.Tex2.xyz)-0.5);
- float4 noiseColor = tex2D(noiseMap, IN.Tex3.xy);
-
- float fDot=saturate(dot(vNormal, vLight));
- fDot*=fDot;
- float fLum=saturate(dot(float3(0.33, 0.59, 0.11), baseColor.xyz))*2;
-
- fLum=saturate(fLum*fLum)*2;
-
- noiseColor=2*(dot(noiseColor.xyz, float3(0.33, 0.59, 0.11))-0.5);
- noiseColor=4*(noiseColor*noiseColor-0.75);
-
- OUT.Color.xyz = saturate(fDot*fLum+0.1)*saturate(Heat.xyz+0.3);
- OUT.Color.a = 1;
- }